import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'

// 导入并使用我们的自定义插件
import myPLugin from './libs/myPlugin';
Vue.use(myPLugin);
// 使用自定义插件里面的全局方法
Vue.myGlobalMethod();

// 引入全局css文件
import './assets/css/index.css'

// 引入ElementUI
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);

// 引入自定义 message 弹框 ，解决 element-ui message可以一直弹的问题
import resetMessage from './util/resetMessage';
Vue.prototype.$message = resetMessage;

// 引入打印组件
import Print from '@/util/print'
Vue.use(Print)


// 导入封装的 axios 插件
import request from './http/request'
// 在原型上扩展,这样不用在每个页面都导入request
Vue.prototype.$request = request;

// 将api地址管理接口全局挂载，方便引用
import api from './http/api'
Vue.prototype.$api = api;

// 将 globalMethods.js 挂载到全局
import globalMethods from './util/globalMethods'
Vue.prototype.$gm = globalMethods;

// 引入全局自定义指令
// import './directive/index.js'
import Directives from './directive'
Vue.use(Directives)

// 引入过滤器
import filters from './filters/index';
//过滤器统一处理加载
Object.keys(filters).forEach((key) => {
  Vue.filter(key, filters[key][key])
})


Vue.config.productionTip = false

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')